<?php
/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package       app.Controller
 * @link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {

    const ITEMS_PER_PAGE = 10;
    
    public $title;
    
    public $components = array(
        'Session',
        'Auth' => array(
            'authenticate' => array( 'Form' )
        )
    );
    
    public function beforeRender() {
        parent::beforeRender();
        
        if ($this->title) {
            $this->set('title_for_layout', $this->title);
        }
    }
    
    public function setFlash($message, $class='info') {
        $this->Session->setFlash($message, 'flash', array('class' => $class));
    }
    public function flashError($message) {
        $this->setFlash($message, 'error');
    }
    public function flashOk($message) {
        $this->setFlash($message, 'ok');
    }
    
    public function setStore($storeId, $redirect=true) {
        $this->loadModel('Store');
        $store = $this->Store->findById($storeId);
        $this->Session->write('CurrentStore', $store['Store']);
        if($redirect) $this->redirect('/');
    }
    public function getStore($field=null) {
        if ($field) {
            return $this->Session->read('CurrentStore.' . $field);
        } else {
            return $this->Session->read('CurrentStore');
        }
    }
}
